//package com.auerdi.dialog;
//
//import android.app.Dialog;
//import android.graphics.Color;
//import android.graphics.drawable.ColorDrawable;
//import android.os.Bundle;
//import android.support.annotation.Nullable;
//import android.support.v4.app.FragmentManager;
//import android.support.v7.app.AppCompatDialogFragment;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.animation.AlphaAnimation;
//import android.view.animation.Animation;
//import android.view.animation.AnimationSet;
//import android.view.animation.TranslateAnimation;
//import android.widget.Button;
//import android.widget.EditText;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import com.auerdi.R;
//
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import butterknife.BindView;
//import butterknife.ButterKnife;
//import butterknife.Unbinder;
//import es.dmoral.toasty.Toasty;
//
///**
// * Created by highsixty on 2018/3/15.
// * mail  gaolulin@sunmi.com
// */
//
//public class CaculaterDialog extends AppCompatDialogFragment {
//
//
//    @BindView(R.id.title)
//    TextView title;
//    @BindView(R.id.content)
//    EditText content;
//    @BindView(R.id.result)
//    EditText result;
//    Unbinder unbinder;
//    private Button[] buttons;
//    private String expression = "";
//    private int viewId = -1;
//    private onInputListener mlistener = null;
//
//
//    public static CaculaterDialog newInstance(String title, String input, onInputListener onInputListener) {
//
//
//        Bundle args = new Bundle();
//        args.putString("title", title);
//        args.putString("input", input);
//
//        CaculaterDialog numberSelectDialog = new CaculaterDialog();
//        numberSelectDialog.setListener(onInputListener);
//
//        numberSelectDialog.setArguments(args);
//        return numberSelectDialog;
//    }
//
//    @Override
//    public void onStart() {
//        super.onStart();
//        Dialog dialog = getDialog();
//        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
//        dialog.setCanceledOnTouchOutside(false);
//        dialog.setCancelable(true);
//
//    }
//
//    @Nullable
//    @Override
//    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//        View view = inflater.inflate(R.layout.caculater_dialog_layout, container, false);
//
//        unbinder = ButterKnife.bind(this, view);
//
//
//        Bundle bundle = getArguments();
//
//
//        title.setText(bundle.getString("title", "数量"));
//        result.setText(bundle.getString("input", "0"));
//
//        buttons = new Button[17];
//        initSimpleBoard(buttons, view);//初始化简易计算器键盘
//
//        return view;
//    }
//
//    //初始化简易计算器键盘
//    private void initSimpleBoard(final Button[] buttons, View view) {
//
//
//        buttons[0] = view.findViewById(R.id.zero);
//        buttons[1] = view.findViewById(R.id.one);
//        buttons[2] = view.findViewById(R.id.two);
//        buttons[3] = view.findViewById(R.id.three);
//        buttons[4] = view.findViewById(R.id.four);
//        buttons[5] = view.findViewById(R.id.five);
//        buttons[6] = view.findViewById(R.id.six);
//        buttons[7] = view.findViewById(R.id.seven);
//        buttons[8] = view.findViewById(R.id.eight);
//        buttons[9] = view.findViewById(R.id.nine);
//        buttons[10] = view.findViewById(R.id.empty);
//        buttons[11] = view.findViewById(R.id.delete);
//        buttons[12] = view.findViewById(R.id.multiple);
//        buttons[13] = view.findViewById(R.id.minus);
//        buttons[14] = view.findViewById(R.id.plus);
//        buttons[15] = view.findViewById(R.id.equal);
//        buttons[16] = view.findViewById(R.id.confirm);
//
//
//        initCommonBtns(buttons);
//    }
//
//    //初始化简易计算器，科学计算器相同的18个按钮
//    private void initCommonBtns(final Button[] buttons) {
//        //添加监听事件
//        //数字0～9
//        for (int i = 0; i < 10; i++) {
//            final int m = i;
//            buttons[i].setOnClickListener(new View.OnClickListener() {
//                @Override
//                public void onClick(View v) {
//                    if (viewId == buttons[15].getId()) {
//                        expression = "";//这次按的数字，如果上次按了等号，则清空表达式
//                    }
//                    viewId = v.getId();
//                    expression += buttons[m].getText();
//                    result.setText(expression);
//                    result.setSelection(expression.length());
//                }
//            });
//        }
//        //empty
//        buttons[10].setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                expression = "";
//                result.setText("0");
//                content.setText(null);
//                viewId = v.getId();
//            }
//        });
//        //delete
//        buttons[11].setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                if (expression.length() < 1) {
//                    return;
//                }
//                expression = expression.substring(0, expression.length() - 1);
//                result.setText(expression);
//                result.setSelection(expression.length());
//                viewId = v.getId();
//            }
//        });
//
//        //multiple
//        buttons[12].setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                if (viewId == v.getId()) {
//                    return;
//                }
//                if (Tool.isEffective(expression) && expression.length() > 1
//                        && CalculateUtils.isOper(expression.substring(expression.length() - 1, expression.length()))) {
//                    expression = replaceStr(expression, buttons[12].getText().toString());
//                } else {
//                    expression += buttons[12].getText();
//                }
//                viewId = v.getId();
//                result.setText(expression);
//                result.setSelection(expression.length());
//            }
//        });
//
//        //minus
//        buttons[13].setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                if (viewId == v.getId()) {
//                    return;
//                }
//                if (Tool.isEffective(expression) && expression.length() > 1
//                        && CalculateUtils.isOper(expression.substring(expression.length() - 1, expression.length()))) {
//                    expression = replaceStr(expression, buttons[13].getText().toString());
//                } else {
//                    expression += buttons[13].getText();
//                }
//                viewId = v.getId();
//                result.setText(expression);
//                result.setSelection(expression.length());
//            }
//        });
//        //plus
//        buttons[14].setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                if (viewId == v.getId()) {
//                    return;
//                }
//                if (Tool.isEffective(expression) && expression.length() > 1
//                        && CalculateUtils.isOper(expression.substring(expression.length() - 1, expression.length()))) {
//                    expression = replaceStr(expression, buttons[14].getText().toString());
//                } else {
//                    expression += buttons[14].getText();
//                }
//                viewId = v.getId();
//                result.setText(expression);
//                result.setSelection(expression.length());
//            }
//        });
//        //equal
//        buttons[15].setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                if (viewId == v.getId()) {
//                    return;
//                }
//                viewId = v.getId();
//                //小小的动画效果
//                AnimationSet animSet = new AnimationSet(true);
//                TranslateAnimation ta = new TranslateAnimation(0, 0, 0, -100);
//                ta.setDuration(80);
//                AlphaAnimation aa = new AlphaAnimation(1f, 0f);
//                aa.setDuration(75);
//                animSet.addAnimation(ta);
//                animSet.addAnimation(aa);
//                result.startAnimation(animSet);
//                animSet.setAnimationListener(new Animation.AnimationListener() {
//                    @Override
//                    public void onAnimationStart(Animation animation) {
//                    }
//
//                    @Override
//                    public void onAnimationEnd(Animation animation) {
//                        //动画结束之后计算
//                        content.setText(expression + "=");
//                        content.setSelection(expression.length() + 1);
//                        try {
//                            expression = CalculateUtils.calculate(expression);
//                            result.setText(expression);
//                        } catch (Exception exception) {
//                            result.setText("表达式错误!");
//                            expression = "";
//                        }
//
//                    }
//
//                    @Override
//                    public void onAnimationRepeat(Animation animation) {
//                    }
//                });
//
//            }
//
//        });
//        //confirm
//        buttons[16].setOnClickListener(new NoDoubleClickListener() {
//            @Override
//            protected void onNoDoubleClick(View view) {
//                if (mlistener != null) {
//                    String text = result.getText().toString();
//                    if (!Tool.isEffective(text)) {
//                        Toasty.info(getContext(), "请输入商品数量", Toast.LENGTH_SHORT, true).show();
//
//                        return;
//                    }
//                    Pattern pattern = Pattern.compile("\\d+");
//                    Matcher matcher = pattern.matcher(text);
//                    if (isOper(text) || !matcher.find()) {
//                        Toasty.info(getContext(), "请先计算商品数量", Toast.LENGTH_SHORT, true).show();
//
//                        return;
//                    }
//
//                    try {
//                        dismiss();
//                    } catch (Exception e) {
//                        e.printStackTrace();
//                    }
//                    mlistener.onOk(text);
//
//                }
//            }
//        });
//    }
//
//    public static boolean isOper(String c) {
//        if (c.contains("+") ||
//                c.contains("-") ||
//                c.contains("*") ||
//                c.contains("×")) return true;
//        return false;
//    }
//
//    public String replaceStr(String target, String replacement) {
//        return target.replace(String.valueOf(target.charAt(target.length() - 1)), replacement);
//    }
//
//    @Override
//    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
//        super.onViewCreated(view, savedInstanceState);
//    }
//
//    boolean isShow = false;//防多次点击
//
//    @Override
//    public void show(FragmentManager manager, String tag) {
//        if (isShow) {
//            return;
//        }
//        super.show(manager, tag);
//        isShow = true;
//    }
//
//    @Override
//    public void dismiss() {
//        super.dismiss();
//        isShow = false;
//    }
//
//    @Override
//    public void onDestroyView() {
//        super.onDestroyView();
//        unbinder.unbind();
//    }
//
//
//    public void setListener(onInputListener listener) {
//        this.mlistener = listener;
//    }
//
//    public interface onInputListener {
//        void onOk(String result);
//
//        void onCancel();
//    }
//
//}
